Systems and methods for generating a schedule

ABSTRACT

Data indicative of times at which at least one item of supplemental video content was output via a plurality of client devices may be received. A first time at which the at least one item of supplemental video content was output via a greatest quantity of client devices of the plurality of client devices may be determined. A second time at which the at least one item of supplemental video content was output via a second greatest quantity of client devices of the plurality of client devices may also be determined. A schedule associated with output of the at least one item of supplemental video content may be generated based at least on the first time and the second time.

BACKGROUND

A company or an individual may choose to advertise for a variety ofdifferent reasons. For example, a company or an individual may create anadvertising campaign (e.g. ad campaign) in order to create or improvebrand awareness for a new or an existing product or service. Similarly,a company or an individual may create an ad campaign in order to drivesales of a product or service. Accordingly, it may be desirable to havea clear understanding of the times at which advertisements, such asthose associated with an ad campaign, are consumed by viewers.

SUMMARY

Methods and systems are disclosed for generating an advertising schedule(e.g. ad schedule). At least one item of supplemental video content,such as advertisement or a copy of an advertisement, may be received.The at least one item of supplemental video content may be received, forexample, from an advertiser. The at least one item of supplemental videocontent may be sent to a computing device, such as a computing device ata remote location. The computing device may utilize the at least oneitem of supplemental video content to determine data indicative of timesat which the at least one item of supplemental video content was outputvia a plurality of client devices. For example, the data indicative oftimes at which the at least one item of supplemental video content wasoutput via the plurality of client devices may be determined, at leastin part, using automatic content recognition (ACR).

The data indicative of times at which the at least one item ofsupplemental video content was output via the plurality of clientdevices may be received from, such as, the computing device. Based onthe received data, a first time at which the at least one item ofsupplemental video content was output via a greatest quantity of clientdevices of the plurality of client devices may be determined. Based onthe received data, a second time at which the at least one item ofsupplemental video content was output via a second greatest quantity ofclient devices of the plurality of client devices may also bedetermined. The first time and the second time may be utilized, at leastin part, to determine a start time and an end time associated withoutput of the at least one item of supplemental video content.

Based at least on the first time and the second time, a scheduleassociated with output of the at least one item of supplemental videocontent may be generated. For example, if the first time and the secondtime are utilized to determine the start time and the end timeassociated with output of the at least one item of supplemental videocontent, the schedule may indicate the start time and the end time. Theschedule may be indicated and/or output. The schedule may be utilized todetermine when an advertisement was output, such as when anadvertisement was output live. Content viewed by at least one user maybe identified based at least in part on the schedule.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems:

FIG. 1 illustrates a block diagram of an example environment.

FIG. 2 illustrates an example of a system in which data indicative oftimes at which at least one item of supplemental video content wasoutput can be generated.

FIG. 3 illustrates an example of a data sample indicative of times at anitem of supplemental video content was output.

FIG. 4 illustrates an example of a chart displaying a sample of dataindicative of times at which an item of supplemental video content wasoutput.

FIG. 5 illustrates an example of a sample of an ad schedule.

FIG. 6 illustrates an example method for generating an ad schedule.

FIG. 7 illustrates a block diagram of an example computing device.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

A company or an individual that has chosen to advertise, for example viaan ad campaign, may want to gain an understanding of the times at whichan advertisement has been output, such as on live television. Thecompany or individual may also want to gain an understanding of how manyviewers the advertisement reached at these times and/or which networkoutput the advertisement at these times. To gain such an understanding,the company or individual may utilize an ad schedule. An ad schedule mayprovide useful information about the output of an advertisement, suchthe times at which the advertisement was output live, networkinformation, impression information, etc.

However, a company or individual that wants an ad schedule may need towait a significant amount of time for the ad schedule to be generated.For example, it may take weeks to process the data necessary forgeneration of the ad schedule. This delay may be undesirable for acompany or individual that does not want to wait weeks for delivery ofthe ad schedule. An additional downside to current ad schedulegeneration techniques is that they are often riddled with error. Forexample, errors in an ad schedule may result from changes to televisionschedules. Changes to television schedules may include, for example,live interruptions and/or live events going over the schedule times,such as a sports game going into overtime. As another example, errors inan ad schedule may result from human error in capturing theadvertisement. As yet another example, errors in an ad schedule mayresult from targeted and/or hyper-local advertisements. Targeted and/orhyper-local advertisements are difficult for ad schedule providers toaccurately capture.

Accordingly, techniques for generating a more accurate ad schedule in amore efficient manner are desirable. Such a technique utilizes a large,behaviorally tracked television panel to detect when advertisements wereoutput (e.g. played) across the panel. The time(s) at which the greatestnumber of client devices output the advertisement may be the livetelevision occurrence of the advertisement, as it is likely that a largegroup of households viewed the advertisement at the same time onlyduring the live television occurrence of the advertisement. The starttime and end time for the advertisement may be determined by analyzing awindow of time near this peak time(s). An ad schedule may be generated,at least in part, based on the start time and end time for theadvertisement. This technique allows the ad schedule to be generatedsoon after the behaviorally tracked television panel becomesavailable—thus eliminating the long wait-time associated withtraditional ad schedule generation techniques.

FIG. 1 illustrates an example hardware and network configuration inwhich the systems and methods described herein may be implemented. Sucha hardware and network system 100 includes a processor 102, a database110, at least one external resource 112, at least one user interfacedevice 114, at least one content source 120, and an advertiser network118. The processor 102, database 110, at least one external resource112, at least one user interface device 114, at least one content source120, and advertiser network 118 are in communication via a network 116.

The processor 102 may be in communication with the database 110. Theprocessor 102 may receive data stored in the database 110. The database110 may store a variety of different data. For example, the database 110may store data received from at least one external resource 112. In anembodiment, the external resource(s) 112 may include a system configuredto provide automatic content recognition (ACR) services. The systemconfigured to provide ACR services may collect data associated withprimary content and/or supplemental content (e.g. advertising) viewinghabits from user devices, such as televisions, smart televisions, etc.The system configured to provide ACR services may collect such data froma large number of user devices, such as millions of user devices. Thedata collected by the system configured to provide ACR services may benear real-time data and may be delivered, such as to the database 110,the same day. The data collected by the system configured to provide ACRservices may enable advertisers, networks, agencies, and/or ad techcompanies to better understand audience viewing trends.

An exemplary system 200 configured to provide ACR services is depictedin FIG. 2. While the exemplary system 200 provides digitalfingerprinting ACR services, in another embodiment a system configuredto provide ACR services may provide digital watermarking ACR services inaddition to, or as an alternative to, digital fingerprinting ACRservices. The system 200 includes at least one content source 201, amedia processor 202, and a plurality of client devices 207 a-n.

The media processor 202 may include an ingestion server 204, afingerprint server 206, and/or a fingerprint database 212. The mediaprocessor 202 may be configured to receive content from the contentsource(s) 201. The content from the content source(s) 201 may include,for example, television programming from various sources. If the contentincludes television programming, the television programming may bereceived at the media processor 202 in advance of the televisionprogramming passing through the remainder of the distribution network onits way to viewer's homes. For example, the television programming maybe received at the media processor 202 approximately 3 to 5 seconds inadvance. If the content includes satellite television content, thesatellite television content may be received even further in advance,such as 5-8 seconds in advance.

The content from the content source(s) 201 may be ingested by theingestion server 204. The ingestion server 204 may be in communicationwith the fingerprint server 206. The fingerprint server 206 may processthe ingested content, such as the ingested television signals. Forexample, the fingerprint server 206 may include a fingerprint generator209 configured to generate digital fingerprints associated with theingested content. To generate the digital fingerprints associated withthe ingested content, the fingerprint server 206 may identify, extract,and then summarize characteristic components of the content, enablingthat content to be uniquely identified. For example, the fingerprintserver 206 may identify portions of the content that are unique to thatpiece of content, such as a handful of pixels that appear at aparticular time during playback of the content. A digital fingerprintmay be created at any point in the content, from any copy of thecontent.

The digital fingerprints generated by the fingerprint generator 209 maybe stored in a database, such as the fingerprint database 212. Thedigital fingerprints generated by the fingerprint generator and storedin the fingerprint database 212 may be used as reference points foridentifying or matching unknown video or audio content, such astelevision programming, from a client device, such as the client devices207 a-n, in a remote location, such as a private home of a user of theclient devices 207 a-n.

The content may then be distributed to the plurality of client devices207 a-n. Each of the plurality of client devices 207 a-n may include aclient processor 208 a-n. Each of the plurality of client devices 207a-n may include a television, a set-top box, a tablet, a phone, acomputer, or a laptop. The client processor 208 a-n may be configured totake samples (e.g. video segments) of the programming actually beingdisplayed via the client devices 207 a-n at any given point in time. Theclient processor 208 a-n may send digital fingerprints of these samplesback to the fingerprint server 206.

In an embodiment, the fingerprint server 206 includes a fingerprintmatcher 210. The fingerprint matcher 210 may be configured to comparethe samples received from the client processor 208 a-n to the digitalfingerprints already generated by the fingerprint generator 209 andstored in the fingerprint database 212. The fingerprint matcher 210 maycompare the samples received from the client processor 208 a-n to thedigital fingerprints already generated by the fingerprint generator 209and stored in the fingerprint database 212 to identify unknown video oraudio content, such as television programming, from the client devices207 a-n. For example, to identify unknown content from the clientdevices 207 a-n, the fingerprint matcher 210 may compare the samplesreceived from the client processor 208 a-n to the digital fingerprintsalready generated by the fingerprint generator 209 and stored in thefingerprint database 212 to find a “match.” A “match” may occur if asample received from the client processor 208 a-n is identical to anexisting, reference digital fingerprint stored in the fingerprintdatabase 212. As the identity of content associated with the referencedigital fingerprints stored in the fingerprint database 212 is known,finding a “match” may identify the previously unknown content from theclient devices 207 a-n.

In an embodiment, the content received from the content source(s) 201 bythe media processor 202 include one or more items of supplementalcontent (e.g. advertisements) and/or copies of such supplementalcontent. If the content received by the media processor 202 includes oneor more items of supplemental content and/or copies of such supplementalcontent, the content may be received by a system for generating an adschedule, such as the system 100 of FIG. 1. The one or more items ofsupplemental content and/or copies of such supplemental content mayinclude advertisements for which an ad schedule is being generated bythe system 100. For example, if a company or individual that is runningan ad campaign wants to generate an ad schedule associated with thecampaign, the company or individual may do so themselves and/or hire anadvertisement agency, such as the advertiser network 118, to create thead campaign. A system, such as the system 100, may be used to generatethe desired ad schedule. To do so, the system may send, to the mediaprocessor 202, one or more items of supplemental content and/or copiesof such supplemental content.

The one or more items of supplemental content and/or copies of suchsupplemental content may be ingested by the ingestion server 204. Asdiscussed above, the ingestion server 204 may be in communication withthe fingerprint server 206. The fingerprint server 206 may process theingested supplemental content and/or copies of such supplementalcontent. For example, the fingerprint generator 209 may generate digitalfingerprints associated with the ingested supplemental content and/orcopies of such supplemental content. To generate the digitalfingerprints associated with the ingested supplemental content and/orcopies of such supplemental content, the fingerprint server 206 mayidentify, extract, and then summarize characteristic components of thesupplemental content and/or copies of such supplemental content,enabling that supplemental content to be uniquely identified. Forexample, the fingerprint server 206 may identify portions of thesupplemental content and/or copies of such supplemental content that areunique to that piece of supplemental content, such as a handful ofpixels that appear at a particular time during playback of thesupplemental content or a sampling of that occurs at a particular timeduring playback of the supplemental content. A digital fingerprint maybe created at any point in the supplemental content, from any copy ofthe supplemental content.

Once generated by the fingerprint generator 209, the digitalfingerprints associated with the item(s) of supplemental content may bestored in the fingerprint database 212. The digital fingerprintsassociated with the item(s) of supplemental content stored in thefingerprint database 212 may be used as reference points for identifyingunknown video or audio content from the client devices 207 a-n as theitem of supplemental content. For example, as described above, each ofthe client devices 207 a-n may include the client processor 208 a-nconfigured to take samples (e.g. audio and/or video segments) of theprogramming actually being displayed via the client devices 207 a-n atany given point in time. The client processor 208 a-n may send digitalfingerprints of these samples back to the fingerprint server 206.

The fingerprint server 206 may include the fingerprint matcher 210. Thefingerprint matcher 210 may be configured to compare the samplesreceived from the client processor 208 a-n to the digital fingerprintsassociated with the item(s) of supplemental content stored in thefingerprint database 212. The fingerprint matcher 210 may compare thesamples received from the client processor 208 a-n to the digitalfingerprints associated with the item(s) of supplemental content todetermine whether unknown audio or video content from the client devices207 a-n includes the item(s) of supplemental content. For example, thefingerprint matcher 210 may determine whether the client devices 207 a-noutput the item(s) of supplemental content.

To determine whether one or more of the client devices 207 a-n outputthe item(s) of supplemental content, the fingerprint matcher 210 maycompare the samples received from each of the client processors 208 a-nto the digital fingerprints associated with the item(s) of supplementalcontent stored in the fingerprint database 212 to determine if a “match”is found for any of the samples. A “match” may be found if a sample, orat least a portion of a sample, received from the client processor 208a-n is identical to an existing, reference digital fingerprintassociated with the item(s) of supplemental content stored in thefingerprint database 212. If a “match” is found for a particular clientdevice 207 a-n, this may indicate that that particular client deviceoutput the item of supplemental content.

The media processor 202 may store the results of the “matching”performed by the fingerprint matcher 210 in a database, such as thefingerprint database 212 or a separate database. The stored results mayindicate each client device 207 a-n that output the item of supplementalcontent. For each client device 207 a-n that output the item ofsupplemental content, the stored results may indicate a network (e.g.channel) that output the item of supplemental content to the clientdevice 207 a-n. For each client device 207 a-n that output the item ofsupplemental content, the stored results may indicate a designatedmarket area (DMA) (e.g. geographic location) associated with that clientdevice and/or a household identification number associated with thatclient device. A DMA is a region of the United States that is used todefine television and radio markets. For each client device 207 a-n thatoutput the item of supplemental content, the stored results may indicatea start time and/or an end time associated with output of thesupplemental content.

FIG. 3 depicts an exemplary data sample 300 representative of theresults of the “matching” performed by the fingerprint matcher 210. Forexample, the data sample 300 may be stored in a database, such as thefingerprint database 212 or a separate database. The data sample 300 maybe indicative client devices, such as the client devices 207 a-n, thatoutput an item of supplemental content. Each row in the data sample 300may be representative of a different client device. For example, eachrow in the data sample 300 may be representative of a differenttelevision, smart television, tablet, laptop, etc. Each row in the datasample 300 may include one or more of a household identification number301, a Designated Market Area (DMA) 302 (e.g. geographic location), anadjustment value 304, a start date 306, a start time 308, an end data310, an end time 312, or a network number 314 associated with therespective client device.

For example, the first row of the data sample 300 is representative of afirst client device. The data sample 300 indicates that the first clientdevice is associated with a household identification number of “01,” andis associated with the Des Moines-Ames DMA. The data sample 300 alsoindicates that first client device has an adjustment value of “2.376.”The data sample 300 indicates that item of supplemental content wasoutput starting at a time of “05:23:22” on Apr. 3, 2019 and ending at atime of “05:23:37” on Apr. 3, 2019. The difference between the starttime and end time may indicate the duration of output of the item ofsupplemental content on this particular client device. For example, thedata sample 300 indicates that the first client device output the itemof supplemental content for 15 seconds. The data sample 300 alsoindicates that the network associated with network number “9” output theitem of supplemental content on first client device. The remaining rowsof the data sample 300, such as those representative of the clientdevices associated with household identification numbers “02” to “05,”indicate similar information about these other client devices, such asDMA, start and end time/date, and/or network number.

In an embodiment, the time at which an item of supplemental contentaired may be different than the time at which the item of supplementalcontent was detected (e.g. recognized) by ACR, such as by the mediaprocessor 202 of FIG. 2. The adjustment value associated with a clientdevice may indicate a measurement of time between when the item ofsupplemental content aired and when the item of supplemental content wasdetected by ACR. Accordingly, the start time, such as the start time308, associated with the respective client device may indicate the timeof detection/recognition, but not necessarily the airing time.

Referring back to FIG. 1, the processor 102 may be configured to processand/or analyze data stored in the database 110. The processor 102 mayinclude a variety of different components configured to process and/oranalyze data. For example, the processor may include a data groupingcomponent 104, a data analysis component 106, and/or a schedulegeneration component 108. One or more of these components 104-108 may beused to process and/or analyze data stored in the database 110 in amanner that facilitates the generation of an ad schedule.

For example, the processor 102 may be configured to process and/oranalyze data received by the database 110 from a system configured toprovide ACR services, such as the system 200. The data received by thedatabase 110 from a system configured to provide ACR services, such asthe system 200, may resemble the exemplary data sample 300 of FIG. 3.However, the data received by the database 110 from the system 200 maybe much larger than the exemplary data sample 300. For example, the datareceived by the database 110 from the system 200 may include hundreds,thousands, or even millions of rows, with each row representative of aparticular client device that has output a particular item ofsupplemental content.

In an embodiment, the processor 102 includes the data grouping component104. The data grouping component 104 may group data based on a varietyof different characteristics. For example, the data grouping component104 may group data by time. If the data is received from a systemconfigured to provide ACR services, such as the system 200 (e.g. datathat resembles the exemplary data sample 300), the data groupingcomponent 104 may group the data by time windows, such as 15-minute timewindows, 30-minute time window, or any other window of time. Forexample, each client device that output that item of supplementalcontent within the same time window may be grouped together. In otherwords, each client device that belongs to a single group may have outputthat item of supplemental content within the same 15-minute (or anyother time frame) window.

As another example, the data grouping component 104 may group data basedon location (e.g. geographic location). If the data is received from asystem configured to provide ACR services, such as the system 200 (e.g.data that resembles the exemplary data sample 300), the data groupingcomponent 104 may group the data by DMA (e.g. DMA 302). For example,each client device that output that item of supplemental content in thesame DMA may be grouped together. In other words, each client devicethat belongs to a single group may be associated with a user thatresides in the same DMA, such as Des Moines-Ames, San Francisco-Oak-SanJose, Denver, etc.

As yet another example, the data grouping component 104 may group databased on network. If the data is received from a system configured toprovide ACR services, such as the system 200 (e.g. data that resemblesthe exemplary data sample 300), the data grouping component 104 maygroup the data by network number (e.g. network number 314). For example,each client device that output that item of supplemental content via thesame network may be grouped together. In other words, each client devicethat belongs to a single group may have output the item of supplementalcontent via the same network.

In an embodiment, the data grouping component 104 may group data basedon more than one characteristic, such as those discussed above ordifferent characteristics entirely. For example, if the data is receivedfrom a system configured to provide ACR services, such as the system 200(e.g. data that resembles the exemplary data sample 300), the datagrouping component 104 may group the data based on time, location, andnetwork. If the data grouping component 104 groups data based on allthree of these characteristics, then each client device in a singlegroup may have output the item of supplemental content within the sametime window, in the same DMA, and via the same network. Alternatively,or additionally, the data grouping component 104 may group the databased on just one or two of time, location, or network.

In an embodiment, the processor 102 includes the data analysis component106. The data analysis component 106 may analyze data received by theprocessor, such as data received from a system configured to provide ACRservices, such as the system 200 (e.g. data that resembles the exemplarydata sample 300). The data analysis component 106 may analyze data thathas already been processed by the data grouping component 104. Forexample, the data analysis component 106 may analyze a data group thathas been created by the data grouping component 104.

In an embodiment, the data analysis component 106 may analyze datareceived from the system 200 that has already been grouped by the datagrouping component 104 based on time, location, and network. Forexample, the data analysis component 106 may analyze one or more groupsof data, with each individual group representative of client devicesthat have output the item of supplemental content within the same timewindow, in the same DMA, and via the same network. The data analysiscomponent 106 may analyze a large number of these groups, with eachgroup representative of a large number of client devices (e.g. hundreds,thousands, or millions of client devices).

The data analysis component 106 may analyze each of these data groups todetermine, for each group, the time(s) at which the item of supplementalcontent was output live. To determine the time(s) at which the item ofsupplemental content was output live, the data analysis component 106may analyze the data to identify a large number of client devices thatoutput the item of supplemental content at the same time orapproximately at the same time (e.g. within a predetermined timethreshold, such as one second). If a large number of client devicesoutput the item of supplemental content at the same time orapproximately at the same time, this may indicate that the item ofsupplemental content was output live (e.g. playing live on thatchannel).

The data analysis component 106 may analyze each of these data groups todetermine, for each group, the start time and end time of the liveoutput of the item of supplemental content. To determine the start timeand the end time of the live output of the item of supplemental content,the data analysis component 106 may identify a first time within thetime window associated with the group. The first time may occur when thegreatest number of client devices output the item of supplementalcontent. For example, if 500,000 client devices are associated with agroup, the first time may occur at the time that the greatest percentageof these 500,000 client devices were all outputting the item ofsupplemental content.

To determine the start time and the end time of the live output of theitem of supplemental content, the data analysis component 106 mayadditionally identify a second time within the time window associatedwith the group. The second time may occur when the second greatestnumber of client devices output the item of supplemental content. Forexample, if 500,000 client devices are associated with a group, thesecond time may occur at the time that the second greatest percentage ofthese 500,000 client devices were all outputting the item ofsupplemental content.

The first time and the second time may be representative of the starttime and the end time of output of the item of supplemental content (orvice versa). For example, the first time may be representative of thestart time of output of the item of supplemental content and the secondtime may be representative of the end time of output of the item ofsupplemental content. Conversely, the second time may be representativeof the start time of output of the item of supplemental content and thefirst time may be representative of output of the end time of the itemof supplemental content. To determine if the first time or the secondtime is representative of the start time of output of the item ofsupplemental content, the data analysis component 106 may determinewhich of the first time and the second time occurs first-in-time. Forexample, the data analysis component 106 may determine whether the firsttime occurs before the second time, or vice versa. If the first timeoccurs before the second time, then the first time may be representativeof the start time of output of the item of supplemental content and thesecond time may be representative of the end time of output of the itemof supplemental content. Conversely, if the second time occurs beforethe first time, then the second time may be representative of the starttime of output of the item of supplemental content and the first timemay be representative of the end time of output of the item ofsupplemental content

If the second time is representative of either the start time or the endtime of the item of supplemental content, then it may occur within apredetermined time frame of the first time. For example, the second timeand the first time may not be separated from each other by a period oftime that is larger than the duration of the item of supplementalcontent. Accordingly, to determine the second time, the data analysiscomponent 106 may first determine an appropriate time frame within whichto identify the second time. The time frame may include the first timeand may have a duration equal to a multiple (e.g. twice) of the durationof the item of supplemental content. By ensuring that the second timeoccurs within this time frame, the data analysis component 106 mayidentify a second time that is not separated from the first time by aperiod of time that is larger than the duration of the item ofsupplemental content.

In an embodiment, the data analysis component 106 may generate a chartor graph representative of a data group in order to analyze it. FIG. 4illustrates an exemplary chart 400 representative of a data group. Thex-axis of the chart 400 is representative of time and may represent awindow of time that is identical or similar to the window of timeassociated with the data group. The y-axis of the chart 400 isrepresentative of density, but in other embodiments the y-axis of thechart may be representative of percentage of client devices (e.g.percentage of client devices that output the item of supplementalcontent), number of client devices (e.g. quantity of client devices thatoutput the item of supplemental content), or any other metric thatindicates when the item of supplemental content was output live.

To generate the chart 400, the data analysis component 106 may, based onthe data in the data group, aggregate the number of client devices thatoutput the item of supplemental content, second-by-second. The peaks onthe chart may be representative of the first time and the second time.As discussed above, the first time may occur when the greatest number ofclient devices output the item of supplemental content. Accordingly, thehighest peak on the chart, such as the peak 402, may be representativeof the first time. As also discussed above, the second time may occurwhen the second greatest number of client devices output the item ofsupplemental content. Accordingly, the second highest peak on the chart,such as the peak 404, may be representative of the second time.

As depicted by the chart 400, the first and second times are separatedfrom each other by a time period equal to the duration of the item ofsupplemental content (e.g. 14.3 seconds). As the peak 402 occurs beforethe peak 404, the first time is representative of the start time of liveoutput of the item of supplemental content and the second time isrepresentative of the end time of live output of the item ofsupplemental content. However, as noted above, for other data groups,the second time may be representative of the start time of output of theitem of supplemental content if it occurs before the first time.

Referring back to FIG. 1, in an embodiment, the processor 102 includesthe schedule generation component 108. The schedule generation component108 may be configured to generate an ad schedule. The ad schedule mayindicate the estimated time(s) an item of supplemental content wasoutput live, by network and/or location. The schedule generationcomponent 108 may generate the ad schedule based on the results/outputof the data analysis component 106. For example, the schedule generationcomponent 108 may generate an ad schedule for each data group analyzedby the data analysis component 106. The generated ad schedule mayindicate, for each output (e.g. airing) of the item of supplementalcontent, the start time and end time of output of the item ofsupplemental content, as determined by the data analysis component 106.The ad schedule may also indicate, for each output (e.g. airing), thenetwork number and/or the number of impressions. The number ofimpressions for an airing indicates how many client devices output theitem of supplemental content at that time on that network.

The ad schedule may be specific to a particular DMA. For example, the adschedule may indicate the estimated time(s) an item of supplementalcontent was output live in a particular DMA. Alternatively, the adschedule may not be specific to a particular DMA. If the ad schedule isnot specific to a particular DMA, the ad schedule may be aggregatedacross multiple DMAs or geographic regions. Times may be shifted forbroadcast networks based on time-zone, as determined by the DMA.

The individual or company that placed this item of supplemental contentmay use the generated ad schedule to gain an understanding of the timesat which the item of supplemental content was output live, such as onlive television. The individual or company may also use the ad scheduleto gain an understanding of how many viewers the item of supplementalcontent reached at these times and/or which network output the item ofsupplemental content at these times. By using a large, behaviorallytracked television panel to generate the ad schedule, the processor 102is able to generate the ad schedule soon after the behaviorally trackedtelevision panel becomes available—thus eliminating the long wait-timeassociated with traditional ad schedule generation techniques.Accordingly, the individual or company is able to gain an understandingof its ad campaign's success and/or reach in a more efficient manner.

FIG. 5 depicts an exemplary ad schedule 500 associated with an item ofsupplemental content. The ad schedule 500 may be generated, for example,by the schedule generation component 108. The ad schedule 500 may begenerated, at least in part, on data that has already been grouped bythe data grouping component and/or data that has already been analyzedby the data analysis component 106. For example, the ad schedule 500 maybe generated based the results/output of the data analysis component106.

Each row in the ad schedule 500 is representative of a particular output(e.g. airing) of the item of supplemental content. For example, the adschedule 500 may be representative of six different outputs, or airings,of the item of supplemental content. For each airing, the ad schedule500 indicates a start time/date 502 and an end time/date 504. The starttime/date 502 and/or the end time/date 504 for a particular airing mayhave been determined by the data analysis component 106. For eachairing, the ad schedule 500 also indicates a duration 506. The duration506 indicates how long the item of supplemental content was outputduring that particular airing. The duration 506 may be equal to thedifference between the start time/date 502 and the end time/date 504.

For each airing, the ad schedule 500 also indicates a network number508. The network number 508 may be determined based on the networknumber(s) 314 listed in the exemplary data sample 300, discussed abovewith reference to FIG. 3. The network number 508 associated with aparticular airing may indicate which network and/or channel wasresponsible for outputting the item of supplemental content.

For each airing, the ad schedule 500 also indicates a number ofimpressions 510. The number of impressions 510 for an airing indicateshow many client devices output the item of supplemental content at thattime (on the network associated with the network number 508). Forexample, the first row of the ad schedule 500 indicates that 1929 clientdevices output the item of supplemental content on the networkassociated with network number 35, starting at 6:08 on Apr. 1, 2019 andending at 6:09 on Apr. 1, 2019. The first row of the ad schedule 500also indicates that these 1929 client devices output the item ofsupplemental content for 17 seconds.

Referring back to FIG. 1, the content source(s) 120 may include acontent database. The content database may include content, such as thecontent 122. The content source(s) 120 may be associated, for example,with a website provider or with a video content provider. If the contentsource(s) 120 is associated with a website provider, the content 122 mayinclude, for example, a website. If the content source(s) 120 isassociated with a video content provider, the content 122 may include,for example, video content. Video content may refer generally to anyvideo content produced for viewer consumption regardless of the type,format, genre, or delivery method. Video content may comprise videocontent produced for broadcast via over-the-air radio, cable, satellite,or the internet. Video content may comprise digital video contentproduced for digital video streaming or video-on-demand. Video contentmay comprise a movie, a television show or program, an episodic orserial television series, or a documentary series, such as a naturedocumentary series. As yet another example, video content may include aregularly scheduled video program series, such as a nightly newsprogram. The content 122 may be associated with one or more contentdistributors that distribute the content 122 to viewers for consumption.

The advertiser network 118 may include an advertisement database. Theadvertisement database may include supplemental content, such asadvertisements. The advertisements may be received from the advertisernetwork 118 and may be stored, for example, in the database 110. The,user interface device(s) 114 may include at least one of a television,set-top box, tablet, phone, computer, or laptop.

The processor 102, electronic storage 110, user interface device(s) 114,external resources 112, advertiser network, and content source(s) 120may each comprise one or more computing devices and/or network devices.The network 116 may comprise one or more public networks (e.g., theInternet) and/or one or more private networks. A private network mayinclude a wireless local area network (WLAN), a local area network(LAN), a wide area network (WAN), a cellular network, or an intranet.The network 116 may comprise wired network(s) and/or wirelessnetwork(s).

As discussed above, it may be desirable to have a more efficientmechanism for generating a more accurate ad schedule. For example, itmay be desirable to generate an ad schedule based on a largebehaviorally tracked television panel. Such an ad schedule may begenerated shortly after this panel data becomes available, whicheliminates the traditional long wait-time associated with ad schedulegeneration. FIG. 6 illustrates an exemplary method 600 for generating anad schedule, such as one that resembles the exemplary ad schedule 500 ofFIG. 5. The method 600 may be performed, for example, by the processor102 of FIG. 1.

To generate the ad schedule, an item of supplemental content, such as anadvertisement, or a copy of the item of supplemental content may bereceived. For example, the item of supplemental content may be receivedfrom an advertiser. The item of supplemental content may be sent to acomputing device (such as the media processor 202 of FIG. 2). Thecomputing device may be at a remote location and may be part of adifferent system than the system that received the item of supplementalcontent. For example, the system 100 may receive the item ofsupplemental content from an advertiser, and then the system 100 mayforward the item of supplemental content to the media processor 202 ofFIG. 1.

The computing device may utilize the item of supplemental content todetermine data indicative of times at which the item of supplementalcontent was output via a plurality of client devices. This data may besent back to the system 100, such as the processor 102 of system 100.The data may be utilized to determine a start time and an end timeassociated with output of the item of supplemental content via theplurality of client devices. An ad schedule may be generated, at leastin part, based on the determined start time and end time. The generatedad schedule may be indicated and utilized in a variety of differentways, such as to determine content viewed by at least one user.

To generate an ad schedule for an item of supplemental content (e.g. anadvertisement), a copy of that item of supplemental content may beneeded. At 602, at least one item of supplemental video content may bereceived. The item of supplemental video content may be, for example, acopy of the item of supplemental video content in a video format (e.g.MP4). The item of supplemental video content may be received from anadvertiser, or any other entity or system that has a copy of the item ofsupplemental video content in a video format. To receive the item ofsupplemental video content, a request for the item of supplemental videocontent may be sent, such as to the advertiser or the other entity orsystem that has a copy of the item of supplemental video content in avideo format.

The item of supplemental video content may be used to determine times atwhich the item of supplemental video content was output to users (e.g.viewed by users). At 604, the item of supplemental video content may besent to a computing device. The computing device may be located remoteto the device that received the item of supplemental video content. Forexample, the computing device may belong to a different system than thedevice that received the item of supplemental video content at step 602.The computing device may be, for example, the media processor 202described above with respect to FIG. 2. Alternatively, the computingdevice may belong to the same system and/or be the same device as thedevice that received the item of supplemental video content, such as theprocessor 102 of FIG. 1. The computing device may utilize the item ofsupplemental content to determine times at which the item ofsupplemental video content was output to users (e.g. viewed by users).

In an embodiment, the computing device may include an ingestion server,such as ingestion server 204, a fingerprint server, such as fingerprintserver 206, and/or a fingerprint database, such as fingerprint database209. The item of supplemental content may be ingested by the ingestionserver. The ingestion server may be in communication with thefingerprint server.

The fingerprint server may include a fingerprint generator, such asfingerprint generator 209 and/or a fingerprint matcher, such asfingerprint matcher 210. The fingerprint server may process the ingesteditem of supplemental content. For example, the fingerprint generator maygenerate digital fingerprints associated with the ingested item ofsupplemental content. To generate the digital fingerprints associatedwith the ingested item of supplemental content, the fingerprintgenerator may identify, extract, and then summarize characteristiccomponents of the item of supplemental content, enabling that item ofsupplemental content to be uniquely identified. For example, thefingerprint generator may identify portions of the item of supplementalcontent that are unique to that item of supplemental content, such as ahandful of pixels that appear at a particular time during playback ofthe item of supplemental content. A digital fingerprint may be createdat any point in the item supplemental content, from any copy of thesupplemental content.

Once generated by the fingerprint generator, the digital fingerprintsassociated with the item of supplemental content may be stored in thefingerprint database. The digital fingerprints associated with the itemof supplemental content stored in the fingerprint database may be usedas reference points for identifying unknown video or audio content froma plurality of client devices (e.g. client devices 207 a-n) as the itemof supplemental content. For example, each of the plurality of clientdevices may include a client processor (e.g. client processor 208 a-n)configured to take samples (e.g. video segments) of the programmingactually being displayed via the client devices at any given point intime. The client processor from each client device may send digitalfingerprints of these samples back to the fingerprint server.

The fingerprint matcher may be configured to compare the samplesreceived from the client processor(s) to the digital fingerprintsassociated with the item of supplemental content stored in thefingerprint database. The fingerprint matcher may compare the samplesreceived from the client processor(s) to the digital fingerprintsassociated with the item of supplemental content to determine whetherunknown video or audio content from the client devices includes the itemof supplemental content. For example, the fingerprint matcher maydetermine whether the client devices output the item of supplementalcontent.

To determine whether one or more of the client devices output the itemof supplemental content, the fingerprint matcher may compare the samplesreceived from each of the client processors to the digital fingerprintsassociated with the item of supplemental content stored in thefingerprint database to determine if a “match” is found for any of thesamples. A “match” may be found if a sample, or at least a portion of asample, received from a client processor is identical to an existing,reference digital fingerprint associated with the item of supplementalcontent stored in the fingerprint database. If a “match” is found for aparticular client device, this may indicate that that particular clientdevice output the item of supplemental content.

The results of the “matching” performed by the fingerprint matcher maybe stored in the fingerprint database or a separate database. The storedresults may indicate each client device that output the item ofsupplemental content. For each client device that output the item ofsupplemental content, the stored results may indicate a network (e.g.channel) that output the item of supplemental content to the clientdevice. For each client device that output the item of supplementalcontent, the stored results may indicate the DMA associated with thatclient device and/or a household identification number associated withthat client device. A DMA is a region of the United States that is usedto define television and radio markets. For each client device thatoutput the item of supplemental content, the stored results may indicatea start time and/or an end time associated with output of the item ofsupplemental content.

The stored results, or the “matching” data, may be sent back to thedevice that received the item of supplemental content, such as theprocessor 102. At 606, data indicative of times at which at least oneitem of supplemental video content was output via a plurality of clientdevices may be received. The received data may be, for example, the“matching” data determined by the computing device. In an embodiment,the received data may resemble the data sample 300 of FIG. 3. However,the amount of received data may be much larger than the exemplary datasample 300. For example, the received data may include hundreds,thousands, or even millions of rows, with each row representative of aparticular client device that has output a particular item ofsupplemental content.

The received data may be manipulated and/or analyzed in order togenerate an ad schedule. For example, the received data may be groupedby a data grouping component (e.g. data grouping component 104) andanalyzed by a data analysis component (e.g. data analysis component106).

As described above, the data grouping component may group data based ona variety of different characteristics. In an embodiment, the datagrouping component may group the received data based on more than onecharacteristic, such as based on time, location, and network. If thedata grouping component groups the received data based on all three ofthese characteristics, then each client device in a single group mayhave output the item of supplemental content within the same timewindow, in the same DMA, and via the same network. Alternatively, oradditionally, the data grouping component 104 may group the data basedon just one or two of time, location, or network.

The data analysis component may analyze data that has already beengrouped by the data grouping component based on time, location, andnetwork. For example, the data analysis component may analyze one ormore groups of data, with each individual group representative of clientdevices that have output the item of supplemental content within thesame time window, in the same DMA, and via the same network. The dataanalysis component may analyze a large number of these groups, with eachgroup representative of a large number of client devices (e.g. hundreds,thousands, or millions of client devices).

The data analysis component may analyze each of these data groups todetermine, for each group, the time(s) at which the item of supplementalcontent was output live. To determine the time(s) at which the item ofsupplemental content was output live, the data analysis component mayanalyze the group of data to identify a large number of client devicesthat output the item of supplemental content at the same time orapproximately at the same time (e.g. within a predetermined timethreshold, such as one second). If a large number of client devicesoutput the item of supplemental content at the same time orapproximately at the same time, this may indicate that the item ofsupplemental content was output live (e.g. playing live on thatchannel).

The data analysis component may analyze each of these data groups todetermine, for each group, the start time and end time of the liveoutput of the item of supplemental content. To determine the start timeand the end time of the live output of the item of supplemental content,the data analysis component may identify a first time within the timewindow associated with the group. At 608, a first time at which the atleast one item of supplemental content was output via a greatestquantity of client devices of the plurality of client devices may bedetermined. The first time may occur when the greatest number of clientdevices output the item of supplemental content. For example, if 500,000client devices are associated with a group, the first time may occur atthe time that the greatest percentage of these 500,000 client deviceswere all outputting the item of supplemental content.

To determine the start time and the end time of the live output of theitem of supplemental content, the data analysis component mayadditionally identify a second time within the time window associatedwith the group. At 610, a second time at which the at least one item ofsupplemental video content was output via a second greatest quantity ofclient devices of the plurality of client devices may be determined. Thesecond time may occur when the second greatest number of client devicesoutput the item of supplemental content. For example, if 500,000 clientdevices are associated with a group, the second time may occur at thetime that the second greatest percentage of these 500,000 client deviceswere all outputting the item of supplemental content.

As an example, the data analysis component may generate a chart or graphrepresentative of a data group in order to determine the first and/orsecond times. As discussed above, FIG. 4 illustrates an exemplary chart400 representative of a data group. The highest peak on the chart 400,such as the peak 402, may be representative of the first time, whereasthe second highest peak on the chart 400, such as the peak 404, may berepresentative of the second time.

The first time and the second time may be representative of the starttime and the end time of output of the item of supplemental content (orvice versa). For example, the first time may be representative of thestart time of output of the item of supplemental content and the secondtime may be representative of the end time of output of the item ofsupplemental content. Conversely, the second time may be representativeof the start time of output of the item of supplemental content and thefirst time may be representative of output of the end time of the itemof supplemental content. At 612, a start time and end time associatedwith output of the at least one item of supplemental video content maybe determined. The start time and the end time may be determined basedon the first time and the second time.

To determine if the first time or the second time is representative ofthe start time of output of the item of supplemental content, the dataanalysis component may determine which of the first time and the secondtime occurs first-in-time. For example, the data analysis component maydetermine whether the first time occurs before the second time, or viceversa. If the first time occurs before the second time, then the firsttime may be representative of the start time of output of the item ofsupplemental content and the second time may be representative of theend time of output of the item of supplemental content. Conversely, ifthe second time occurs before the first time, then the second time maybe representative of the start time of output of the item ofsupplemental content and the first time may be representative of the endtime of output of the item of supplemental content.

As an example, referring again to FIG. 4, because the peak 402 occursbefore the peak 404, the first time is representative of the start timeof live output of the item of supplemental content and the second timeis representative of the end time of live output of the item ofsupplemental content. However, as noted above, for other data groups,the second time may be representative of the start time of output of theitem of supplemental content if it occurs before the first time.

If the second time is representative of either the start time or the endtime of the item of supplemental content, then it may occur within apredetermined time frame of the first time. For example, the second timeand the first time may not be separated from each other by a period oftime that is larger than the duration of the item of supplementalcontent. Accordingly, to determine the second time, the data analysiscomponent 106 may first determine an appropriate time frame within whichto identify the second time. The time frame may include the first timeand may have a duration equal to a multiple (e.g. twice) of the durationof the item of supplemental content. By ensuring that the second timeoccurs within this time frame, the data analysis component 106 mayidentify a second time that is not separated from the first time by aperiod of time that is larger than the duration of the item ofsupplemental content. As depicted by the chart 400, the first and secondtimes are separated from each other by a time period equal to theduration of the item of supplemental content (e.g. 14.3 seconds).

At 614, a schedule (e.g. an ad schedule) may be generated based on theresults/output of the data analysis component. For example, a schedulegeneration component, such as the schedule generation component 108, maygenerate an ad schedule for each data group analyzed by the dataanalysis component. The schedule may resemble, for example, theexemplary ad schedule 500 of FIG. 5. The schedule may be associated withoutput of the at least one item of supplemental content. The generatedschedule may indicate, for each live output (e.g. airing) of the item ofsupplemental content, the start time and end time of output of the itemof supplemental content, as determined by the data analysis component.The schedule may also indicate, for each output (e.g. airing), thenetwork number and/or the number of impressions. The number ofimpressions for an airing indicates how many client devices output theitem of supplemental content at that time on that network.

The ad schedule may be specific to a particular DMA. For example, the adschedule may indicate the estimated time(s) an item of supplementalcontent was output live in a particular DMA. Alternatively, the adschedule may not be specific to a particular DMA. If the ad schedule isnot specific to a particular DMA, the ad schedule may be aggregatedacross multiple DMAs or geographic regions. Times may be shifted forbroadcast networks based on time-zone, as determined by the DMA.

At 616, the schedule may be indicated (e.g. output, stored, forwarded,etc.). For example, the schedule may be indicated to the individual orcompany that placed this item of supplemental content. The individual orcompany may use the generated schedule to gain an understanding of thetimes at which the item of supplemental content was output live, such ason live television. Additionally, or alternatively, the schedule may beindicated to any other entity that wants to gain an understanding of thetimes at which the item of supplemental content was output live.

At 618, content viewed by at least one user may be identified based atleast in part on the schedule. The schedule may be used to gain anunderstanding of how many viewers the item of supplemental contentreached at these times and/or which network output the item ofsupplemental content at these times. Utilizing a large, behaviorallytracked television panel to generate an ad schedule allows the adschedule to be generated soon after the behaviorally tracked televisionpanel becomes available—thus eliminating the long wait-time associatedwith traditional ad schedule generation techniques. Accordingly, theindividual or company is able to gain an understanding of its adcampaign's success and/or reach in a more efficient manner.

FIG. 7 depicts a computing device that may be used in various aspects.With regard to the example environment of FIG. 1, one or more of theprocessor 102, electronic storage 110, user interface device(s) 114,external resources 112, advertiser network, or content source(s) 120 maybe implemented in an instance of a computing device 700 of FIG. 7. Thecomputer architecture shown in FIG. 7 shows a conventional servercomputer, workstation, desktop computer, laptop, tablet, networkappliance, PDA, e-reader, digital cellular phone, or other computingnode, and may be utilized to execute any aspects of the computersdescribed herein, such as to implement the methods described in FIG. 6.

The computing device 700 may include a baseboard, or “motherboard,”which is a printed circuit board to which a multitude of components ordevices may be connected by way of a system bus or other electricalcommunication paths. One or more central processing units (CPUs) 704 mayoperate in conjunction with a chipset 706. The CPU(s) 704 may bestandard programmable processors that perform arithmetic and logicaloperations necessary for the operation of the computing device 700.

The CPU(s) 704 may perform the necessary operations by transitioningfrom one discrete physical state to the next through the manipulation ofswitching elements that differentiate between and change these states.Switching elements may generally include electronic circuits thatmaintain one of two binary states, such as flip-flops, and electroniccircuits that provide an output state based on the logical combinationof the states of one or more other switching elements, such as logicgates. These basic switching elements may be combined to create morecomplex logic circuits including registers, adders-subtractors,arithmetic logic units, floating-point units, and the like.

The CPU(s) 704 may be augmented with or replaced by other processingunits, such as GPU(s) 705. The GPU(s) 705 may comprise processing unitsspecialized for but not necessarily limited to highly parallelcomputations, such as graphics and other visualization-relatedprocessing.

A user interface may be provided between the CPU(s) 704 and theremainder of the components and devices on the baseboard. The interfacemay be used to access a random access memory (RAM) 708 used as the mainmemory in the computing device 700. The interface may be used to accessa computer-readable storage medium, such as a read-only memory (ROM) 720or non-volatile RAM (NVRAM) (not shown), for storing basic routines thatmay help to start up the computing device 700 and to transferinformation between the various components and devices. ROM 720 or NVRAMmay also store other software components necessary for the operation ofthe computing device 700 in accordance with the aspects describedherein. The user interface may be provided by a one or more electricalcomponents such as the chipset 706.

The computing device 700 may operate in a networked environment usinglogical connections to remote computing nodes and computer systemsthrough local area network (LAN) 716. The chipset 706 may includefunctionality for providing network connectivity through a networkinterface controller (NIC) 722, such as a gigabit Ethernet adapter. ANIC 722 may be capable of connecting the computing device 700 to othercomputing nodes over a network 716. It should be appreciated thatmultiple NICs 722 may be present in the computing device 700, connectingthe computing device to other types of networks and remote computersystems.

The computing device 700 may be connected to a storage device 728 thatprovides non-volatile storage for the computer. The storage device 728may store system programs, application programs, other program modules,and data, which have been described in greater detail herein. Thestorage device 728 may be connected to the computing device 700 througha storage controller 724 connected to the chipset 706. The storagedevice 728 may consist of one or more physical storage units. A storagecontroller 724 may interface with the physical storage units through aserial attached SCSI (SAS) interface, a serial advanced technologyattachment (SATA) interface, a fiber channel (FC) interface, or othertype of interface for physically connecting and transferring databetween computers and physical storage units.

The computing device 700 may store data on a storage device 728 bytransforming the physical state of the physical storage units to reflectthe information being stored. The specific transformation of a physicalstate may depend on various factors and on different implementations ofthis description. Examples of such factors may include, but are notlimited to, the technology used to implement the physical storage unitsand whether the storage device 728 is characterized as primary orsecondary storage and the like.

For example, the computing device 700 may store information to thestorage device 728 by issuing instructions through a storage controller724 to alter the magnetic characteristics of a particular locationwithin a magnetic disk drive unit, the reflective or refractivecharacteristics of a particular location in an optical storage unit, orthe electrical characteristics of a particular capacitor, transistor, orother discrete component in a solid-state storage unit. Othertransformations of physical media are possible without departing fromthe scope and spirit of the present description, with the foregoingexamples provided only to facilitate this description. The computingdevice 700 may read information from the storage device 728 by detectingthe physical states or characteristics of one or more particularlocations within the physical storage units.

In addition or alternatively to the storage device 728 described herein,the computing device 700 may have access to other computer-readablestorage media to store and retrieve information, such as programmodules, data structures, or other data. It should be appreciated bythose skilled in the art that computer-readable storage media may be anyavailable media that provides for the storage of non-transitory data andthat may be accessed by the computing device 700.

By way of example and not limitation, computer-readable storage mediamay include volatile and non-volatile, transitory computer-readablestorage media and non-transitory computer-readable storage media, andremovable and non-removable media implemented in any method ortechnology. Computer-readable storage media includes, but is not limitedto, RAM, ROM, erasable programmable ROM (“EPROM”), electrically erasableprogrammable ROM (“EEPROM”), flash memory or other solid-state memorytechnology, compact disc ROM (“CD-ROM”), digital versatile disk (“DVD”),high definition DVD (“HD-DVD”), BLU-RAY, or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage, other magneticstorage devices, or any other medium that may be used to store thedesired information in a non-transitory fashion.

A storage device, such as the storage device 728 depicted in FIG. 7, maystore an operating system utilized to control the operation of thecomputing device 700. The operating system may comprise a version of theLINUX operating system. The operating system may comprise a version ofthe WINDOWS SERVER operating system from the MICROSOFT Corporation.According to additional aspects, the operating system may comprise aversion of the UNIX operating system. Various mobile phone operatingsystems, such as IOS and ANDROID, may also be utilized. It should beappreciated that other operating systems may also be utilized. Thestorage device 728 may store other system or application programs anddata utilized by the computing device 700.

The storage device 728 or other computer-readable storage media may alsobe encoded with computer-executable instructions, which, when loadedinto the computing device 700, transforms the computing device from ageneral-purpose computing system into a special-purpose computer capableof implementing the aspects described herein. These computer-executableinstructions transform the computing device 700 by specifying how theCPU(s) 704 transition between states, as described herein. The computingdevice 700 may have access to computer-readable storage media storingcomputer-executable instructions, which, when executed by the computingdevice 700, may perform the methods described in relation to FIG. 6.

A computing device, such as the computing device 700 depicted in FIG. 7,may also include an input/output controller 732 for receiving andprocessing input from a number of input devices, such as a keyboard, amouse, a touchpad, a touch screen, an electronic stylus, or other typeof input device. Similarly, an input/output controller 732 may provideoutput to a display, such as a computer monitor, a flat-panel display, adigital projector, a printer, a plotter, or other type of output device.It will be appreciated that the computing device 700 may not include allof the components shown in FIG. 7, may include other components that arenot explicitly shown in FIG. 7, or may utilize an architecturecompletely different than that shown in FIG. 7.

As described herein, a computing device may be a physical computingdevice, such as the computing device 700 of FIG. 7. A computing node mayalso include a virtual machine host process and one or more virtualmachine instances. Computer-executable instructions may be executed bythe physical hardware of a computing device indirectly throughinterpretation and/or execution of instructions stored and executed inthe context of a virtual machine.

One skilled in the art will appreciate that the systems and methodsdisclosed herein may be implemented via a computing device that maycomprise, but are not limited to, one or more processors, a systemmemory, and a system bus that couples various system componentsincluding the processor to the system memory. In the case of multipleprocessors, the system may utilize parallel computing.

For purposes of illustration, application programs and other executableprogram components such as the operating system are illustrated hereinas discrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computing device, and are executed by the data processor(s) of thecomputer. An implementation of service software may be stored on ortransmitted across some form of computer-readable media. Any of thedisclosed methods may be performed by computer-readable instructionsembodied on computer-readable media. Computer-readable media may be anyavailable media that may be accessed by a computer. By way of exampleand not meant to be limiting, computer-readable media may comprise“computer storage media” and “communications media.” “Computer storagemedia” comprise volatile and non-volatile, removable and non-removablemedia implemented in any methods or technology for storage ofinformation such as computer-readable instructions, data structures,program modules, or other data. Exemplary computer storage mediacomprises, but is not limited to, RAM, ROM, EEPROM, flash memory orother memory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which maybe used to store the desired information and which may be accessed by acomputer. Application programs and the like and/or storage media may beimplemented, at least in part, at a remote system.

As used in the specification and the appended claims, the singular forms“a,” “an” and “the” include plural referents unless the context clearlydictates otherwise. Ranges may be expressed herein as from “about” oneparticular value, and/or to “about” another particular value. Unlessotherwise expressly stated, it is in no way intended that any method setforth herein be construed as requiring that its steps be performed in aspecific order. Accordingly, where a method claim does not actuallyrecite an order to be followed by its steps or it is not otherwisespecifically stated in the claims or descriptions that the steps are tobe limited to a specific order, it is no way intended that an order beinferred, in any respect.

It will be apparent to those skilled in the art that variousmodifications and variations may be made without departing from thescope or spirit. Other embodiments will be apparent to those skilled inthe art from consideration of the specification and practice disclosedherein. It is intended that the specification and examples be consideredas exemplary only, with a true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. A method comprising: receiving data indicative ofdifferent times at which at least one item of supplemental video contentwas output via a plurality of client devices; determining, based on thedata, a first time at which the at least one item of supplemental videocontent was output via a greatest quantity of client devices of theplurality of client devices; determining, based on the data, a secondtime at which the at least one item of supplemental video content wasoutput via a second greatest quantity of client devices of the pluralityof client devices, the second time being different from the first time;and generating, based on the first time and the second time, a scheduleindicating a start time and an end time of output of the at least oneitem of supplemental video content.
 2. The method of claim 1, furthercomprising, before receiving the data indicative of the different timesat which the at least one item of supplemental video content was outputvia the plurality of client devices: receiving the at least one item ofsupplemental video content; and sending, to a computing device at aremote location, the at least one item of supplemental video content. 3.The method of claim 1, further comprising: indicating the scheduleindicating the start time and the end time of the output of the at leastone item of supplemental video content.
 4. The method of claim 1,further comprising: identifying, based on the schedule, content viewedby at least one user.
 5. The method of claim 1, further comprisingdetermining the start time and the end time of the output of the atleast one item of supplemental video content by: comparing the firsttime with the second time to determine that the first time occurs beforethe second time; and determining that the first time is the start timeassociated with the output of the at least one item of supplementalvideo content and that the second time is the end time associated withthe output of the at least one item of supplemental video content. 6.The method of claim 1, further comprising determining the start time andthe end time of the output of the at least one item of supplementalvideo content by: comparing the first time with the second time todetermine that the second time occurs before the first time; anddetermining that the second time is the start time associated with theoutput of the at least one item of supplemental video content and thatthe first time is the end time associated with the output of the atleast one item of supplemental video content.
 7. The method of claim 1,wherein the data indicative of the different times at which the at leastone item of supplemental video content was output via the plurality ofclient devices is indicative of a network that caused output of the atleast one item of supplemental video content via the plurality of clientdevices, and wherein the schedule indicating the start time and the endtime of the output of the at least one item of supplemental videocontent is associated with the network.
 8. The method of claim 1,wherein the different times at which the at least one item ofsupplemental video content was output via the plurality of clientdevices comprise different times during a predetermined window of timeat which the at least one item of supplemental video content was outputvia the plurality of client devices.
 9. The method of claim 1, whereindetermining the first time at which the at least one item ofsupplemental video content was output via the greatest quantity ofclient devices of the plurality of client devices comprises: identifyinga time the at least one item of supplemental video content was output bya maximum quantity of client devices of the plurality of client devices.10. The method of claim 1, wherein determining the second time at whichthe at least one item of supplemental video content was output via thesecond greatest quantity of client devices of the plurality of clientdevices comprises: determining a time frame including the first time;and identifying a time, during the time frame, the at least one item ofsupplemental video content was output via the second greatest quantityof client devices of the plurality of client devices.
 11. The method ofclaim 1, wherein the schedule indicating the start time and the end timeof the output of the at least one item of supplemental video content isindicative of an estimated time period during which the at least oneitem of supplemental video content was output live.
 12. The method ofclaim 1, wherein the at least one item of supplemental video contentcomprises an advertisement.
 13. The method of claim 1, wherein theplurality of client devices comprises at least one television, set-topbox, tablet, phone, computer, or laptop.
 14. The method of claim 1,further comprising grouping the plurality of client devices that outputthe at least one item of supplemental video content by time.
 15. Themethod of claim 1, wherein the greatest quantity of client devices ofthe plurality of client devices and the second greatest quantity ofclient devices of the plurality of client devices are based on clientdevices that share a characteristic.
 16. The method of claim 1, whereinthe first time and the second time are within a time window based on aduration of the at least one item of supplemental video content.
 17. Themethod of claim 2, wherein the data indicative of the different times atwhich the at least one item of supplemental video content was output viathe plurality of client devices comprises data determined usingautomatic content recognition (ACR) by the computing device at theremote location.
 18. The method of claim 10, wherein determining thetime frame including the first time comprises: determining a duration ofthe at least one item of supplemental video content; and determining awindow of time including the first time and having a duration equal to amultiple of the duration of the at least one item of supplemental videocontent.
 19. A system comprising: at least one processor; and at leastone memory storing instructions that, when executed, cause the at leastone processor to: receive data indicative of different times at which atleast one item of supplemental video content was output via a pluralityof client devices; determine, based on the data, a first time at whichthe at least one item of supplemental video content was output via agreatest quantity of client devices of the plurality of client devices;determine, based on the data, a second time at which the at least oneitem of supplemental video content was output via a second greatestquantity of client devices of the plurality of client devices, thesecond time being different from the first time; and generate, based onthe first time and the second time, a schedule indicating a start timeand an end time of output of the at least one item of supplemental videocontent.
 20. A non-transitory computer-readable medium storinginstructions that, when executed, cause: receiving data indicative ofdifferent times at which at least one item of supplemental video contentwas output via a plurality of client devices; determining, based on thedata, a first time at which the at least one item of supplemental videocontent was output via a greatest quantity of client devices of theplurality of client devices; determining, based on the data, a secondtime at which the at least one item of supplemental video content wasoutput via a second greatest quantity of client devices of the pluralityof client devices, the second time being different from the first time;and generating, based on the first time and the second time, a scheduleindicating a start time and an end time of output of the at least oneitem of supplemental video content.